package com.rerun.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.rerun.common.util.JsonDateFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * The type Work experience.
 */
@TableName("work_experience")
public class WorkExperience extends Model<WorkExperience> {

  private static final long serialVersionUID = 2298447712660282811L;
  @TableId(type = IdType.UUID)
  private String id;
  private String memberId;
  private String companyName;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date startDate;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date endDate;
  private String jobPay;
  private String workDescribe;
  private String jobType;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date updateTime;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date createTime;


    /**
     * Gets id.
     *
     * @return the id
     */
    public String getId() {
    return id;
  }

    /**
     * Sets id.
     *
     * @param id the id
     */
    public void setId(String id) {
    this.id = id;
  }

    /**
     * Gets member id.
     *
     * @return the member id
     */
    public String getMemberId() {
    return memberId;
  }

    /**
     * Sets member id.
     *
     * @param memberId the member id
     */
    public void setMemberId(String memberId) {
    this.memberId = memberId;
  }

    /**
     * Gets company name.
     *
     * @return the company name
     */
    public String getCompanyName() {
    return companyName;
  }

    /**
     * Sets company name.
     *
     * @param companyName the company name
     */
    public void setCompanyName(String companyName) {
    this.companyName = companyName;
  }

    /**
     * Gets start date.
     *
     * @return the start date
     */
    public Date getStartDate() {
    return startDate;
  }

    /**
     * Sets start date.
     *
     * @param startDate the start date
     */
    public void setStartDate(Date startDate) {
    this.startDate = startDate;
  }

    /**
     * Gets end date.
     *
     * @return the end date
     */
    public Date getEndDate() {
    return endDate;
  }

    /**
     * Sets end date.
     *
     * @param endDate the end date
     */
    public void setEndDate(Date endDate) {
    this.endDate = endDate;
  }

    /**
     * Gets job pay.
     *
     * @return the job pay
     */
    public String getJobPay() {
    return jobPay;
  }

    /**
     * Sets job pay.
     *
     * @param jobPay the job pay
     */
    public void setJobPay(String jobPay) {
    this.jobPay = jobPay;
  }

    /**
     * Gets work describe.
     *
     * @return the work describe
     */
    public String getWorkDescribe() {
    return workDescribe;
  }

    /**
     * Sets work describe.
     *
     * @param workDescribe the work describe
     */
    public void setWorkDescribe(String workDescribe) {
    this.workDescribe = workDescribe;
  }

    /**
     * Gets job type.
     *
     * @return the job type
     */
    public String getJobType() {
    return jobType;
  }

    /**
     * Sets job type.
     *
     * @param jobType the job type
     */
    public void setJobType(String jobType) {
    this.jobType = jobType;
  }

    /**
     * Gets update time.
     *
     * @return the update time
     */
    public Date getUpdateTime() {
    return updateTime;
  }

    /**
     * Sets update time.
     *
     * @param updateTime the update time
     */
    public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

    /**
     * Gets create time.
     *
     * @return the create time
     */
    public Date getCreateTime() {
    return createTime;
  }

    /**
     * Sets create time.
     *
     * @param createTime the create time
     */
    public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  @Override
  protected Serializable pkVal() {
    return this.id;
  }

  @Override
  public String toString() {
    return "{" +
            "id:" + id +
            ", memberId:" + memberId +
            ", companyName:" + companyName +
            ", startDate:" + startDate +
            ", endDate:" + endDate +
            ", jobPay:" + jobPay +
            ", workDescribe:" + workDescribe +
            ", jobType:" + jobType +
            ", updateTime:" + updateTime +
            ", createTime:" + createTime +
            '}';
  }
}
